Group communication technologies on the Internet allow users with common interests to collaborate, share files, chat with one another, multi-cast audio and video for presentations and group meetings, and engage in multi-player gaming. Indeed, the ability for group formation on an ad hoc basis presents significant advantages to allow users with common interests to gather in a virtual area or group that may be segregated from the general Internet population thereby facilitating useful discussion and collaboration between such like minded individuals. Currently, however, most group communication and formation takes place in a server centric environment whereby all communication flows to or through large central servers to which individuals may connect to join and participate in the group.
With the reemergence of peer-to-peer (P2P) technology, the current server centric model of Internet communication is quickly being replaced. Indeed, peer-to-peer technologies enable users to contact one another in a serverless environment, free from the constraints of server based Internet communication. In a peer-to-peer based system, a user's anonymity and privacy may be maintained since communication occurs directly between peers within the network. However, while individual communication and file sharing is relatively well established in peer-to-peer networks, discovering/joining and sharing information in a group peer-to-peer environment is not well established. However, individuals have grown accustomed to the benefits provided by such grouping technology in the server centric environment. Therefore, a need exists for technology that allows both the benefits of peer-to-peer technologies and grouping technologies to be realized in the serverless environment that is peer-to-peer.
The use of P2P in the entertainment software industry has been largely limited to content sharing user scenarios. Session listing and content discovery services currently in use typically employ large “farms” of servers that support the load of large numbers of clients using those services. This approach has an extremely high cost to the owner of the service both in terms of computer hardware, communications bandwidth, facilities costs and human resources.
In light of the foregoing, there exists a need for a system and method that enables client systems to locate, configure and launch sessions with other client systems. For example, gamers need to find, configure and launch multi-player games with other players. There also exists a need for notification of players when content, such as game patches, updates or other content is available to download based on a player's installed games and user provided preferences. Furthermore, game vendors need to be able to develop highly customized user experiences within games while avoiding designs that require large scale server farms built upon monolithic persistent data repositories.